package com.irdstudio.efp.riskm.service.impl;

import java.util.List;
import java.util.Objects;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.irdstudio.basic.framework.core.base.FrameworkService;
import com.irdstudio.efp.riskm.service.dao.PspCheckTaskHisDao;
import com.irdstudio.efp.riskm.service.domain.PspCheckTaskHis;
import com.irdstudio.efp.riskm.service.facade.PspCheckTaskHisService;
import com.irdstudio.efp.riskm.service.vo.PspCheckTaskHisVO;
/**
 * <p>ServiceImpl: 检查任务历史表				<p>
 * @author chenqm1
 * @date 2018-05-03
 */
@Service("pspCheckTaskHisService")
public class PspCheckTaskHisServiceImpl implements PspCheckTaskHisService, FrameworkService {
	
	private static Logger logger = LoggerFactory.getLogger(PspCheckTaskHisServiceImpl.class);

	@Autowired
	private PspCheckTaskHisDao pspCheckTaskHisDao;
	
	/**
	 * 新增操作
	 */
	public int insertPspCheckTaskHis(PspCheckTaskHisVO inPspCheckTaskHisVo) {
		logger.debug("当前新增数据为:"+ inPspCheckTaskHisVo.toString());
		int num = 0;
		try {
			PspCheckTaskHis pspCheckTaskHis = new PspCheckTaskHis();
			beanCopy(inPspCheckTaskHisVo, pspCheckTaskHis);
			num = pspCheckTaskHisDao.insertPspCheckTaskHis(pspCheckTaskHis);
		} catch (Exception e) {
			logger.error("新增数据发生异常!", e);
			num = -1;
		}
		logger.debug("当前新增数据条数为:"+ num);
		return num;
	}

	/**
	 * 删除操作
	 */
	public int deleteByPk(PspCheckTaskHisVO inPspCheckTaskHisVo) {
		logger.debug("当前删除数据条件为:"+ inPspCheckTaskHisVo);
		int num = 0;
		try {
			PspCheckTaskHis pspCheckTaskHis = new PspCheckTaskHis();
			beanCopy(inPspCheckTaskHisVo, pspCheckTaskHis);
			num = pspCheckTaskHisDao.deleteByPk(pspCheckTaskHis);
		} catch (Exception e) {
			logger.error("删除数据发生异常!", e);
			num = -1;
		}
		logger.debug("根据条件:"+ inPspCheckTaskHisVo +"删除的数据条数为"+ num);
		return num;
	}


	/**
	 * 更新操作
	 */
	public int updateByPk(PspCheckTaskHisVO inPspCheckTaskHisVo) {
		logger.debug("当前修改数据为:"+ inPspCheckTaskHisVo.toString());
		int num = 0;
		try {
			PspCheckTaskHis pspCheckTaskHis = new PspCheckTaskHis();
			beanCopy(inPspCheckTaskHisVo, pspCheckTaskHis);
			num = pspCheckTaskHisDao.updateByPk(pspCheckTaskHis);
		} catch (Exception e) {
			logger.error("修改数据发生异常!", e);
			num = -1;
		}
		logger.debug("根据条件:"+ inPspCheckTaskHisVo +"修改的数据条数为"+ num);
		return num;
	}
	
	/**
	 * 查询操作
	 */
	public PspCheckTaskHisVO queryByPk(PspCheckTaskHisVO inPspCheckTaskHisVo) {
		
		logger.debug("当前查询参数信息为:"+ inPspCheckTaskHisVo);
		try {
			PspCheckTaskHis queryPspCheckTaskHis = new PspCheckTaskHis();
			beanCopy(inPspCheckTaskHisVo, queryPspCheckTaskHis);
			PspCheckTaskHis queryRslPspCheckTaskHis = pspCheckTaskHisDao.queryByPk(queryPspCheckTaskHis);
			if (Objects.nonNull(queryRslPspCheckTaskHis)) {
				PspCheckTaskHisVO outPspCheckTaskHisVo = beanCopy(queryRslPspCheckTaskHis, new PspCheckTaskHisVO());
				logger.debug("当前查询结果为:"+ outPspCheckTaskHisVo.toString());
				return outPspCheckTaskHisVo;
			} else {
				logger.debug("当前查询结果为空!");
			}
		} catch (Exception e) {
			logger.error("查询数据发生异常!", e);
		}
		return null;
	}


	/**
	 * 查询用户权限数据
	 */
	@SuppressWarnings("unchecked")
	public List<PspCheckTaskHisVO> queryAllOwner(PspCheckTaskHisVO pspCheckTaskHisVo) {

		logger.debug("当前查询本人所属数据信息的参数信息为:");
		PspCheckTaskHis pspCheckTaskHis = beanCopy(pspCheckTaskHisVo, new PspCheckTaskHis());
		List<PspCheckTaskHisVO> list = null;
		try {
			List<PspCheckTaskHis> pspCheckTaskHiss = pspCheckTaskHisDao.queryAllOwnerByPage(pspCheckTaskHis);
			logger.debug("当前查询本人所属数据信息的结果集数量为:"+ pspCheckTaskHiss.size());
			pageSet(pspCheckTaskHiss, pspCheckTaskHis);
			list = (List<PspCheckTaskHisVO>) beansCopy(pspCheckTaskHiss, PspCheckTaskHisVO.class);
		} catch (Exception e) {
			logger.error("数据转换出现异常!", e);
		}
		
		return list;
	
	}


	/**
	 * 查询当前机构权限数据
	 */
	@SuppressWarnings("unchecked")
	public List<PspCheckTaskHisVO> queryAllCurrOrg(PspCheckTaskHisVO pspCheckTaskHisVo) {

		logger.debug("当前查询本人所属机构数据信息的参数信息为:");
		PspCheckTaskHis pspCheckTaskHis = beanCopy(pspCheckTaskHisVo, new PspCheckTaskHis());
		List<PspCheckTaskHis> pspCheckTaskHiss = pspCheckTaskHisDao.queryAllCurrOrgByPage(pspCheckTaskHis);
		logger.debug("当前查询本人所属机构数据信息的结果集数量为:"+pspCheckTaskHiss.size());
		List<PspCheckTaskHisVO> list = null;
		try {
			pageSet(pspCheckTaskHiss, pspCheckTaskHis);
			list = (List<PspCheckTaskHisVO>) beansCopy(pspCheckTaskHiss, PspCheckTaskHisVO.class);
		} catch (Exception e) {
			logger.error("数据转换出现异常!", e);
		}
		
		return list;
	
	}


	/**
	 * 查询当前机构及下属机构权限数据
	 */
	@SuppressWarnings("unchecked")
	public List<PspCheckTaskHisVO> queryAllCurrDownOrg(PspCheckTaskHisVO pspCheckTaskHisVo) {

		logger.debug("当前查询本人所属机构及以下数据信息的参数信息为:");
		PspCheckTaskHis pspCheckTaskHis = beanCopy(pspCheckTaskHisVo, new PspCheckTaskHis());
		List<PspCheckTaskHis> pspCheckTaskHiss = pspCheckTaskHisDao.queryAllCurrDownOrgByPage(pspCheckTaskHis);
		logger.debug("当前查询本人所属机构及以下数据信息的结果集数量为:"+ pspCheckTaskHiss.size());
		List<PspCheckTaskHisVO> list = null;
		try {
			pageSet(pspCheckTaskHiss, pspCheckTaskHis);
			list = (List<PspCheckTaskHisVO>) beansCopy(pspCheckTaskHiss, PspCheckTaskHisVO.class);
		} catch (Exception e) {
			logger.error("数据转换出现异常!", e);
		}
		
		return list;
	
	}
}
